package com.hmall.item.web;

import com.hmall.common.dto.ItemDto;
import com.hmall.common.dto.PageResult;
import com.hmall.item.service.IItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("item")
public class ItemController {

    @Autowired
    private IItemService itemService;


    /**
     * 定义分页查询的接口方法
     */
    @GetMapping("/list")
    public PageResult list(@RequestParam("page") Integer page, @RequestParam("size") Integer size){
        return itemService.list(page,size);
    }

    /**
     * 定义新增商品的接口方法
     */
    @PostMapping
    public void saveItem(@RequestBody ItemDto dto){
       itemService.saveItem(dto);
    }

    /**
     * 根据id查询商品信息
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    public ItemDto findById(@PathVariable Long id){
        return itemService.findById(id);
    }

    /**
     * 商品上下架功能
     * @param id
     * @param status
     */
    @PutMapping("/status/{id}/{status}")
    public void downOrUp(@PathVariable Long id,@PathVariable Integer status){
        itemService.downOrUp(id,status);
    }

    /**
     * 扣减商品库存的业务
     * update tb_item set stock=stock-num where id=?
     */
    @GetMapping("/stock/{id}/{num}")
    public boolean koujianStock(@PathVariable Long id,@PathVariable Integer num){
        boolean update = itemService.update().setSql("stock=stock-" + num).eq("id", id).update();
        return update;
    }
}
